package com.zzw.springboot.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zzw.springboot.bean.Supplier;
import com.zzw.springboot.bean.SysUser;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 供应商DAO接口
 */
public interface SupplierMapper extends BaseMapper<Supplier> {
    /**
     * 添加供应商
     * @param supplier 供应商信息
     * @return 影响行数
     */
    int insertSupplier(Supplier supplier);

    /**
     * 更新供应商
     * @param supplier 供应商信息
     * @return 影响行数
     */
    int updateSupplier(Supplier supplier);

    /**
     * 删除供应商
     * @param supplierId 供应商ID
     * @return 影响行数
     */
    int deleteSupplier(Integer supplierId);

    /**
     * 批量删除供应商
     * @param supplierIds 供应商ID数组
     * @return 影响行数
     */
    int deleteSupplierBatch(Integer[] supplierIds);

    /**
     * 根据ID查询供应商
     * @param supplierId 供应商ID
     * @return 供应商信息
     */
    Supplier selectSupplierById(Integer supplierId);

    /**
     * 查询供应商列表（带条件）
     * @param supplier 查询条件
     * @return 供应商列表
     */
    List<Supplier> selectSupplierList(Supplier supplier);

    /**
     * 查询全部供应商
     * @return 供应商列表
     */
    List<Supplier> selectAllSuppliers();

    /**
     * 检查供应商编码是否已存在
     * @param supplierCode 供应商编码
     * @param supplierId 供应商ID（排除项）
     * @return 存在数量
     */
    int checkSupplierCodeExists(@Param("supplierCode") String supplierCode, @Param("supplierId") Integer supplierId);

    /**
     * 检查供应商名称是否已存在
     * @param supplierName 供应商名称
     * @param supplierId 供应商ID（排除项）
     * @return 存在数量
     */
    int checkSupplierNameExists(@Param("supplierName") String supplierName, @Param("supplierId") Integer supplierId);
}
